<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxTriangleMesh Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classPxTriangleMesh.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classPxTriangleMesh-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PxTriangleMesh Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__geomutils.html">Geomutils</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>A triangle mesh, also called a 'polygon soup'.  
 <a href="classPxTriangleMesh.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="PxTriangleMesh_8h_source.html">PxTriangleMesh.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PxTriangleMesh:</div>
<div class="dyncontent">
<div class="center"><img src="classPxTriangleMesh__inherit__graph.png" border="0" usemap="#PxTriangleMesh_inherit__map" alt="Inheritance graph"/></div>
<map name="PxTriangleMesh_inherit__map" id="PxTriangleMesh_inherit__map">
<area shape="rect" id="node3" href="classPxBVH33TriangleMesh.html" title="A triangle mesh containing the PxMeshMidPhase::eBVH33 structure. " alt="" coords="5,155,161,181"/>
<area shape="rect" id="node4" href="classPxBVH34TriangleMesh.html" title="A triangle mesh containing the PxMeshMidPhase::eBVH34 structure. " alt="" coords="185,155,341,181"/>
<area shape="rect" id="node2" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. " alt="" coords="139,5,207,32"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for PxTriangleMesh:</div>
<div class="dyncontent">
<div class="center"><img src="classPxTriangleMesh__coll__graph.png" border="0" usemap="#PxTriangleMesh_coll__map" alt="Collaboration graph"/></div>
<map name="PxTriangleMesh_coll__map" id="PxTriangleMesh_coll__map">
<area shape="rect" id="node2" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection. " alt="" coords="48,109,116,136"/>
<area shape="rect" id="node3" href="classPxFlags.html" title="PxFlags\&lt; PxBaseFlag\l::Enum, PxU16 \&gt;" alt="" coords="5,5,159,47"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab2ee402843a2f19a252ecb229d9cfbc8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#ab2ee402843a2f19a252ecb229d9cfbc8">getNbVertices</a> () const =0</td></tr>
<tr class="memdesc:ab2ee402843a2f19a252ecb229d9cfbc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of vertices.  <a href="#ab2ee402843a2f19a252ecb229d9cfbc8">More...</a><br /></td></tr>
<tr class="separator:ab2ee402843a2f19a252ecb229d9cfbc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08c203991bc3ad2be59ad6ab048197dc"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classPxVec3.html">PxVec3</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a08c203991bc3ad2be59ad6ab048197dc">getVertices</a> () const =0</td></tr>
<tr class="memdesc:a08c203991bc3ad2be59ad6ab048197dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the vertices.  <a href="#a08c203991bc3ad2be59ad6ab048197dc">More...</a><br /></td></tr>
<tr class="separator:a08c203991bc3ad2be59ad6ab048197dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a261ef2fa9709a163408b41d2c34dda71"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classPxVec3.html">PxVec3</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a261ef2fa9709a163408b41d2c34dda71">getVerticesForModification</a> ()=0</td></tr>
<tr class="memdesc:a261ef2fa9709a163408b41d2c34dda71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns all mesh vertices for modification.  <a href="#a261ef2fa9709a163408b41d2c34dda71">More...</a><br /></td></tr>
<tr class="separator:a261ef2fa9709a163408b41d2c34dda71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc5c3b6c67a887917a111c432a799eff"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classPxBounds3.html">PxBounds3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#acc5c3b6c67a887917a111c432a799eff">refitBVH</a> ()=0</td></tr>
<tr class="memdesc:acc5c3b6c67a887917a111c432a799eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refits BVH for mesh vertices.  <a href="#acc5c3b6c67a887917a111c432a799eff">More...</a><br /></td></tr>
<tr class="separator:acc5c3b6c67a887917a111c432a799eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a611c8453a6b6256a63f1450aa8cf237a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a611c8453a6b6256a63f1450aa8cf237a">getNbTriangles</a> () const =0</td></tr>
<tr class="memdesc:a611c8453a6b6256a63f1450aa8cf237a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of triangles.  <a href="#a611c8453a6b6256a63f1450aa8cf237a">More...</a><br /></td></tr>
<tr class="separator:a611c8453a6b6256a63f1450aa8cf237a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b5db3f6060849da98024a04ceb991e5"><td class="memItemLeft" align="right" valign="top">virtual const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a1b5db3f6060849da98024a04ceb991e5">getTriangles</a> () const =0</td></tr>
<tr class="memdesc:a1b5db3f6060849da98024a04ceb991e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the triangle indices.  <a href="#a1b5db3f6060849da98024a04ceb991e5">More...</a><br /></td></tr>
<tr class="separator:a1b5db3f6060849da98024a04ceb991e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf820099ddef71863f8528e6b8fc957c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__geomutils.html#ga9bff69ddd57aac22aad966a4b30983e7">PxTriangleMeshFlags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#adf820099ddef71863f8528e6b8fc957c">getTriangleMeshFlags</a> () const =0</td></tr>
<tr class="memdesc:adf820099ddef71863f8528e6b8fc957c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the <a class="el" href="classPxTriangleMesh.html" title="A triangle mesh, also called a &#39;polygon soup&#39;. ">PxTriangleMesh</a> flags.  <a href="#adf820099ddef71863f8528e6b8fc957c">More...</a><br /></td></tr>
<tr class="separator:adf820099ddef71863f8528e6b8fc957c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b36d40812d5cb70507472cd4e147ae0"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a6b36d40812d5cb70507472cd4e147ae0">getTrianglesRemap</a> () const =0</td></tr>
<tr class="memdesc:a6b36d40812d5cb70507472cd4e147ae0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the triangle remapping table.  <a href="#a6b36d40812d5cb70507472cd4e147ae0">More...</a><br /></td></tr>
<tr class="separator:a6b36d40812d5cb70507472cd4e147ae0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a168cc0000372c63857d128d04f1d32fa"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a168cc0000372c63857d128d04f1d32fa">release</a> ()=0</td></tr>
<tr class="memdesc:a168cc0000372c63857d128d04f1d32fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrements the reference count of a triangle mesh and releases it if the new reference count is zero.  <a href="#a168cc0000372c63857d128d04f1d32fa">More...</a><br /></td></tr>
<tr class="separator:a168cc0000372c63857d128d04f1d32fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6ce228303232206a8ac953152007818"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__common.html#gac816bc62a68a52f01bf21f963295e822">PxMaterialTableIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#ac6ce228303232206a8ac953152007818">getTriangleMaterialIndex</a> (<a class="el" href="group__common.html#ga19403877bf7ce42d7240e4e4c758c016">PxTriangleID</a> triangleIndex) const =0</td></tr>
<tr class="memdesc:ac6ce228303232206a8ac953152007818"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns material table index of given triangle.  <a href="#ac6ce228303232206a8ac953152007818">More...</a><br /></td></tr>
<tr class="separator:ac6ce228303232206a8ac953152007818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe5283d82a46081bae3ef7c7132b64ec"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classPxBounds3.html">PxBounds3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#afe5283d82a46081bae3ef7c7132b64ec">getLocalBounds</a> () const =0</td></tr>
<tr class="memdesc:afe5283d82a46081bae3ef7c7132b64ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the local-space (vertex space) AABB from the triangle mesh.  <a href="#afe5283d82a46081bae3ef7c7132b64ec">More...</a><br /></td></tr>
<tr class="separator:afe5283d82a46081bae3ef7c7132b64ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fc4aed5a5f01a0f1b769d3c6534ba8d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a0fc4aed5a5f01a0f1b769d3c6534ba8d">getReferenceCount</a> () const =0</td></tr>
<tr class="memdesc:a0fc4aed5a5f01a0f1b769d3c6534ba8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reference count for shared meshes.  <a href="#a0fc4aed5a5f01a0f1b769d3c6534ba8d">More...</a><br /></td></tr>
<tr class="separator:a0fc4aed5a5f01a0f1b769d3c6534ba8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a984f1536be90cc0581052c035b4a424d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#a984f1536be90cc0581052c035b4a424d">acquireReference</a> ()=0</td></tr>
<tr class="memdesc:a984f1536be90cc0581052c035b4a424d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acquires a counted reference to a triangle mesh.  <a href="#a984f1536be90cc0581052c035b4a424d">More...</a><br /></td></tr>
<tr class="separator:a984f1536be90cc0581052c035b4a424d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classPxBase"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classPxBase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classPxBase.html">PxBase</a></td></tr>
<tr class="memitem:a67fe206d8897ddce896c371ac8d789a9 inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a67fe206d8897ddce896c371ac8d789a9">getConcreteTypeName</a> () const =0</td></tr>
<tr class="memdesc:a67fe206d8897ddce896c371ac8d789a9 inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns string name of dynamic type.  <a href="classPxBase.html#a67fe206d8897ddce896c371ac8d789a9">More...</a><br /></td></tr>
<tr class="separator:a67fe206d8897ddce896c371ac8d789a9 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bc720adef86ea68bfb5845f0e104d23 inherit pub_methods_classPxBase"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a4bc720adef86ea68bfb5845f0e104d23 inherit pub_methods_classPxBase"><td class="memTemplItemLeft" align="right" valign="top">T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxBase.html#a4bc720adef86ea68bfb5845f0e104d23">is</a> ()</td></tr>
<tr class="separator:a4bc720adef86ea68bfb5845f0e104d23 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85aa50ac0e5670a2be64411fea62b5e3 inherit pub_methods_classPxBase"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a85aa50ac0e5670a2be64411fea62b5e3 inherit pub_methods_classPxBase"><td class="memTemplItemLeft" align="right" valign="top">const T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxBase.html#a85aa50ac0e5670a2be64411fea62b5e3">is</a> () const</td></tr>
<tr class="separator:a85aa50ac0e5670a2be64411fea62b5e3 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e0691a08e49631dc60014d49c7585f inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#ab4e0691a08e49631dc60014d49c7585f">getConcreteType</a> () const</td></tr>
<tr class="memdesc:ab4e0691a08e49631dc60014d49c7585f inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns concrete type of object.  <a href="classPxBase.html#ab4e0691a08e49631dc60014d49c7585f">More...</a><br /></td></tr>
<tr class="separator:ab4e0691a08e49631dc60014d49c7585f inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dd20bb574075df904e1878f2e771ef9 inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a1dd20bb574075df904e1878f2e771ef9">setBaseFlag</a> (<a class="el" href="structPxBaseFlag.html#ac258de0c7adaa37f81b6ab1b0c86a6ee">PxBaseFlag::Enum</a> flag, bool value)</td></tr>
<tr class="memdesc:a1dd20bb574075df904e1878f2e771ef9 inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set <a class="el" href="structPxBaseFlag.html" title="Flags for PxBase. ">PxBaseFlag</a>.  <a href="classPxBase.html#a1dd20bb574075df904e1878f2e771ef9">More...</a><br /></td></tr>
<tr class="separator:a1dd20bb574075df904e1878f2e771ef9 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb391b692c561df0a54c413785e4ebd0 inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#afb391b692c561df0a54c413785e4ebd0">setBaseFlags</a> (<a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> inFlags)</td></tr>
<tr class="memdesc:afb391b692c561df0a54c413785e4ebd0 inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set PxBaseFlags.  <a href="classPxBase.html#afb391b692c561df0a54c413785e4ebd0">More...</a><br /></td></tr>
<tr class="separator:afb391b692c561df0a54c413785e4ebd0 inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9b10efae7733ff9c8b8d3b7d90a9a5f inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#ga6a774eed3cad34b0f636332a3d28c6bb">PX_FORCE_INLINE</a> <a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#ad9b10efae7733ff9c8b8d3b7d90a9a5f">getBaseFlags</a> () const</td></tr>
<tr class="memdesc:ad9b10efae7733ff9c8b8d3b7d90a9a5f inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns PxBaseFlags.  <a href="classPxBase.html#ad9b10efae7733ff9c8b8d3b7d90a9a5f">More...</a><br /></td></tr>
<tr class="separator:ad9b10efae7733ff9c8b8d3b7d90a9a5f inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38952fcb80e99f1f5dbf774a75ac2c3d inherit pub_methods_classPxBase"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a38952fcb80e99f1f5dbf774a75ac2c3d">isReleasable</a> () const</td></tr>
<tr class="memdesc:a38952fcb80e99f1f5dbf774a75ac2c3d inherit pub_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the object is subordinate.  <a href="classPxBase.html#a38952fcb80e99f1f5dbf774a75ac2c3d">More...</a><br /></td></tr>
<tr class="separator:a38952fcb80e99f1f5dbf774a75ac2c3d inherit pub_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab6401ba6b8f477e3c95a79da42f4e3b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#ab6401ba6b8f477e3c95a79da42f4e3b0">PxTriangleMesh</a> (<a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a> concreteType, <a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="separator:ab6401ba6b8f477e3c95a79da42f4e3b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadd4279bc98db8ec4d1da6c1485fcb07"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#aadd4279bc98db8ec4d1da6c1485fcb07">PxTriangleMesh</a> (<a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="separator:aadd4279bc98db8ec4d1da6c1485fcb07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada2a2da4a5671707c12a04c736ea256f"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#ada2a2da4a5671707c12a04c736ea256f">~PxTriangleMesh</a> ()</td></tr>
<tr class="separator:ada2a2da4a5671707c12a04c736ea256f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb359c49e60c827061a6124d329f7cf1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxTriangleMesh.html#adb359c49e60c827061a6124d329f7cf1">isKindOf</a> (const char *name) const</td></tr>
<tr class="memdesc:adb359c49e60c827061a6124d329f7cf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a given type name matches with the type of this instance.  <a href="#adb359c49e60c827061a6124d329f7cf1">More...</a><br /></td></tr>
<tr class="separator:adb359c49e60c827061a6124d329f7cf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classPxBase"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classPxBase')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classPxBase.html">PxBase</a></td></tr>
<tr class="memitem:a263f1ef821c74058ce9335e06cb842a4 inherit pro_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a263f1ef821c74058ce9335e06cb842a4">PxBase</a> (<a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a> concreteType, <a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="memdesc:a263f1ef821c74058ce9335e06cb842a4 inherit pro_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor setting concrete type and base flags.  <a href="classPxBase.html#a263f1ef821c74058ce9335e06cb842a4">More...</a><br /></td></tr>
<tr class="separator:a263f1ef821c74058ce9335e06cb842a4 inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58b979202e7382701f74977fe3dd5c6f inherit pro_methods_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a58b979202e7382701f74977fe3dd5c6f">PxBase</a> (<a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a> baseFlags)</td></tr>
<tr class="memdesc:a58b979202e7382701f74977fe3dd5c6f inherit pro_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserialization constructor setting base flags.  <a href="classPxBase.html#a58b979202e7382701f74977fe3dd5c6f">More...</a><br /></td></tr>
<tr class="separator:a58b979202e7382701f74977fe3dd5c6f inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfbf62dc32775b068db1c74c7fd3d982 inherit pro_methods_classPxBase"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#adfbf62dc32775b068db1c74c7fd3d982">~PxBase</a> ()</td></tr>
<tr class="memdesc:adfbf62dc32775b068db1c74c7fd3d982 inherit pro_methods_classPxBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="classPxBase.html#adfbf62dc32775b068db1c74c7fd3d982">More...</a><br /></td></tr>
<tr class="separator:adfbf62dc32775b068db1c74c7fd3d982 inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3782ca64c8f12c41443f604e300fc207 inherit pro_methods_classPxBase"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a3782ca64c8f12c41443f604e300fc207 inherit pro_methods_classPxBase"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classPxBase.html#a3782ca64c8f12c41443f604e300fc207">typeMatch</a> () const</td></tr>
<tr class="separator:a3782ca64c8f12c41443f604e300fc207 inherit pro_methods_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classPxBase"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classPxBase')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classPxBase.html">PxBase</a></td></tr>
<tr class="memitem:a1abe9d19726e1f8f8e56abeb2269b5d4 inherit pro_attribs_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#a1abe9d19726e1f8f8e56abeb2269b5d4">mConcreteType</a></td></tr>
<tr class="separator:a1abe9d19726e1f8f8e56abeb2269b5d4 inherit pro_attribs_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff7105f65905ecb9f6f7993ba28b712d inherit pro_attribs_classPxBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxBase.html#aff7105f65905ecb9f6f7993ba28b712d">mBaseFlags</a></td></tr>
<tr class="separator:aff7105f65905ecb9f6f7993ba28b712d inherit pro_attribs_classPxBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A triangle mesh, also called a 'polygon soup'. </p>
<p>It is represented as an indexed triangle list. There are no restrictions on the triangle data.</p>
<p>To avoid duplicating data when you have several instances of a particular mesh positioned differently, you do not use this class to represent a mesh object directly. Instead, you create an instance of this mesh via the <a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a> and <a class="el" href="classPxShape.html" title="Abstract class for collision shapes. ">PxShape</a> classes.</p>
<h3>Creation</h3>
<p>To create an instance of this class call <a class="el" href="classPxPhysics.html#a29dcbbe128cef11eaf4ce5696c216dfd" title="Creates a triangle mesh object. ">PxPhysics::createTriangleMesh()</a>, and <a class="el" href="classPxTriangleMesh.html#a168cc0000372c63857d128d04f1d32fa" title="Decrements the reference count of a triangle mesh and releases it if the new reference count is zero...">release()</a> to delete it. This is only possible once you have released all of its <a class="el" href="classPxShape.html" title="Abstract class for collision shapes. ">PxShape</a> instances.</p>
<h3>Visualizations:</h3>
<ul>
<li><a class="el" href="structPxVisualizationParameter.html#adce8e8a77c144356b0968d2b9f79eb10a714f24bab39d1bbe8b131bd10ef5552b" title="Visualize bounds (AABBs in world space) ">PxVisualizationParameter::eCOLLISION_AABBS</a> </li>
<li><a class="el" href="structPxVisualizationParameter.html#adce8e8a77c144356b0968d2b9f79eb10a515f4c3c72ee88d7507b52d6ccd14eab" title="Shape visualization. ">PxVisualizationParameter::eCOLLISION_SHAPES</a> </li>
<li><a class="el" href="structPxVisualizationParameter.html#adce8e8a77c144356b0968d2b9f79eb10a0ad9dcb10f5f3d6ded3baecfc1e387d3" title="Shape axis visualization. ">PxVisualizationParameter::eCOLLISION_AXES</a> </li>
<li><a class="el" href="structPxVisualizationParameter.html#adce8e8a77c144356b0968d2b9f79eb10afd900f30ba421d555e7f7b087126cd92" title="Mesh &amp; convex face normals. ">PxVisualizationParameter::eCOLLISION_FNORMALS</a> </li>
<li><a class="el" href="structPxVisualizationParameter.html#adce8e8a77c144356b0968d2b9f79eb10aa0e06ca7fa1a0445abe0f4d293feb961" title="Active edges for meshes. ">PxVisualizationParameter::eCOLLISION_EDGES</a></li>
</ul>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMeshDesc.html" title="Descriptor class for PxTriangleMesh. ">PxTriangleMeshDesc</a> <a class="el" href="classPxTriangleMeshGeometry.html" title="Triangle mesh geometry class. ">PxTriangleMeshGeometry</a> <a class="el" href="classPxShape.html" title="Abstract class for collision shapes. ">PxShape</a> <a class="el" href="classPxPhysics.html#a29dcbbe128cef11eaf4ce5696c216dfd" title="Creates a triangle mesh object. ">PxPhysics.createTriangleMesh()</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab6401ba6b8f477e3c95a79da42f4e3b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6401ba6b8f477e3c95a79da42f4e3b0">&#9670;&nbsp;</a></span>PxTriangleMesh() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> PxTriangleMesh::PxTriangleMesh </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__common.html#gac1fb4b256a5d900d394e89db170a2b79">PxType</a>&#160;</td>
          <td class="paramname"><em>concreteType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td>
          <td class="paramname"><em>baseFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aadd4279bc98db8ec4d1da6c1485fcb07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadd4279bc98db8ec4d1da6c1485fcb07">&#9670;&nbsp;</a></span>PxTriangleMesh() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__foundation.html#gacb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> PxTriangleMesh::PxTriangleMesh </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__common.html#ga1e3721588799f5fbb18d76e4aab7d018">PxBaseFlags</a>&#160;</td>
          <td class="paramname"><em>baseFlags</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ada2a2da4a5671707c12a04c736ea256f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada2a2da4a5671707c12a04c736ea256f">&#9670;&nbsp;</a></span>~PxTriangleMesh()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual PxTriangleMesh::~PxTriangleMesh </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a984f1536be90cc0581052c035b4a424d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a984f1536be90cc0581052c035b4a424d">&#9670;&nbsp;</a></span>acquireReference()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void PxTriangleMesh::acquireReference </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Acquires a counted reference to a triangle mesh. </p>
<p>This method increases the reference count of the triangle mesh by 1. Decrement the reference count by calling <a class="el" href="classPxTriangleMesh.html#a168cc0000372c63857d128d04f1d32fa" title="Decrements the reference count of a triangle mesh and releases it if the new reference count is zero...">release()</a> </p>

</div>
</div>
<a id="afe5283d82a46081bae3ef7c7132b64ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe5283d82a46081bae3ef7c7132b64ec">&#9670;&nbsp;</a></span>getLocalBounds()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classPxBounds3.html">PxBounds3</a> PxTriangleMesh::getLocalBounds </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the local-space (vertex space) AABB from the triangle mesh. </p>
<dl class="section return"><dt>Returns</dt><dd>local-space bounds </dd></dl>

</div>
</div>
<a id="a611c8453a6b6256a63f1450aa8cf237a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a611c8453a6b6256a63f1450aa8cf237a">&#9670;&nbsp;</a></span>getNbTriangles()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxTriangleMesh::getNbTriangles </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the number of triangles. </p>
<dl class="section return"><dt>Returns</dt><dd>number of triangles </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html#a1b5db3f6060849da98024a04ceb991e5" title="Returns the triangle indices. ">getTriangles()</a> <a class="el" href="classPxTriangleMesh.html#a6b36d40812d5cb70507472cd4e147ae0" title="Returns the triangle remapping table. ">getTrianglesRemap()</a> </dd></dl>

</div>
</div>
<a id="ab2ee402843a2f19a252ecb229d9cfbc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2ee402843a2f19a252ecb229d9cfbc8">&#9670;&nbsp;</a></span>getNbVertices()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxTriangleMesh::getNbVertices </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the number of vertices. </p>
<dl class="section return"><dt>Returns</dt><dd>number of vertices </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html#a08c203991bc3ad2be59ad6ab048197dc" title="Returns the vertices. ">getVertices()</a> </dd></dl>

</div>
</div>
<a id="a0fc4aed5a5f01a0f1b769d3c6534ba8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fc4aed5a5f01a0f1b769d3c6534ba8d">&#9670;&nbsp;</a></span>getReferenceCount()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> PxTriangleMesh::getReferenceCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the reference count for shared meshes. </p>
<p>At creation, the reference count of the mesh is 1. Every shape referencing this mesh increments the count by 1. When the reference count reaches 0, and only then, the mesh gets destroyed automatically.</p>
<dl class="section return"><dt>Returns</dt><dd>the current reference count. </dd></dl>

</div>
</div>
<a id="ac6ce228303232206a8ac953152007818"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6ce228303232206a8ac953152007818">&#9670;&nbsp;</a></span>getTriangleMaterialIndex()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__common.html#gac816bc62a68a52f01bf21f963295e822">PxMaterialTableIndex</a> PxTriangleMesh::getTriangleMaterialIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__common.html#ga19403877bf7ce42d7240e4e4c758c016">PxTriangleID</a>&#160;</td>
          <td class="paramname"><em>triangleIndex</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns material table index of given triangle. </p>
<p>This function takes a post cooking triangle index.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">triangleIndex</td><td>(internal) index of desired triangle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Material table index, or 0xffff if no per-triangle materials are used </dd></dl>

</div>
</div>
<a id="adf820099ddef71863f8528e6b8fc957c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf820099ddef71863f8528e6b8fc957c">&#9670;&nbsp;</a></span>getTriangleMeshFlags()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__geomutils.html#ga9bff69ddd57aac22aad966a4b30983e7">PxTriangleMeshFlags</a> PxTriangleMesh::getTriangleMeshFlags </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reads the <a class="el" href="classPxTriangleMesh.html" title="A triangle mesh, also called a &#39;polygon soup&#39;. ">PxTriangleMesh</a> flags. </p>
<p>See the list of flags <a class="el" href="structPxTriangleMeshFlag.html" title="Flags for the mesh geometry properties. ">PxTriangleMeshFlag</a></p>
<dl class="section return"><dt>Returns</dt><dd>The values of the <a class="el" href="classPxTriangleMesh.html" title="A triangle mesh, also called a &#39;polygon soup&#39;. ">PxTriangleMesh</a> flags.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html" title="A triangle mesh, also called a &#39;polygon soup&#39;. ">PxTriangleMesh</a> </dd></dl>

</div>
</div>
<a id="a1b5db3f6060849da98024a04ceb991e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b5db3f6060849da98024a04ceb991e5">&#9670;&nbsp;</a></span>getTriangles()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const void* PxTriangleMesh::getTriangles </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the triangle indices. </p>
<p>The indices can be 16 or 32bit depending on the number of triangles in the mesh. Call <a class="el" href="classPxTriangleMesh.html#adf820099ddef71863f8528e6b8fc957c" title="Reads the PxTriangleMesh flags. ">getTriangleMeshFlags()</a> to know if the indices are 16 or 32 bits.</p>
<p>The number of indices is the number of triangles * 3.</p>
<dl class="section return"><dt>Returns</dt><dd>array of triangles </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html#a611c8453a6b6256a63f1450aa8cf237a" title="Returns the number of triangles. ">getNbTriangles()</a> <a class="el" href="classPxTriangleMesh.html#adf820099ddef71863f8528e6b8fc957c" title="Reads the PxTriangleMesh flags. ">getTriangleMeshFlags()</a> <a class="el" href="classPxTriangleMesh.html#a6b36d40812d5cb70507472cd4e147ae0" title="Returns the triangle remapping table. ">getTrianglesRemap()</a> </dd></dl>

</div>
</div>
<a id="a6b36d40812d5cb70507472cd4e147ae0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b36d40812d5cb70507472cd4e147ae0">&#9670;&nbsp;</a></span>getTrianglesRemap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>* PxTriangleMesh::getTrianglesRemap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the triangle remapping table. </p>
<p>The triangles are internally sorted according to various criteria. Hence the internal triangle order does not always match the original (user-defined) order. The remapping table helps finding the old indices knowing the new ones:</p>
<p>remapTable[ internalTriangleIndex ] = originalTriangleIndex</p>
<dl class="section return"><dt>Returns</dt><dd>the remapping table (or NULL if '<a class="el" href="structPxCookingParams.html#a50426ff06726ccab3f5e0503077778a6" title="When true, the face remap table is not created. This saves a significant amount of memory...">PxCookingParams::suppressTriangleMeshRemapTable</a>' has been used) </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html#a611c8453a6b6256a63f1450aa8cf237a" title="Returns the number of triangles. ">getNbTriangles()</a> <a class="el" href="classPxTriangleMesh.html#a1b5db3f6060849da98024a04ceb991e5" title="Returns the triangle indices. ">getTriangles()</a> <a class="el" href="structPxCookingParams.html#a50426ff06726ccab3f5e0503077778a6" title="When true, the face remap table is not created. This saves a significant amount of memory...">PxCookingParams::suppressTriangleMeshRemapTable</a> </dd></dl>

</div>
</div>
<a id="a08c203991bc3ad2be59ad6ab048197dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08c203991bc3ad2be59ad6ab048197dc">&#9670;&nbsp;</a></span>getVertices()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classPxVec3.html">PxVec3</a>* PxTriangleMesh::getVertices </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the vertices. </p>
<dl class="section return"><dt>Returns</dt><dd>array of vertices </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html#ab2ee402843a2f19a252ecb229d9cfbc8" title="Returns the number of vertices. ">getNbVertices()</a> </dd></dl>

</div>
</div>
<a id="a261ef2fa9709a163408b41d2c34dda71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a261ef2fa9709a163408b41d2c34dda71">&#9670;&nbsp;</a></span>getVerticesForModification()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classPxVec3.html">PxVec3</a>* PxTriangleMesh::getVerticesForModification </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns all mesh vertices for modification. </p>
<p>This function will return the vertices of the mesh so that their positions can be changed in place. After modifying the vertices you must call refitBVH for the refitting to actually take place. This function maintains the old mesh topology (triangle indices).</p>
<dl class="section return"><dt>Returns</dt><dd>inplace vertex coordinates for each existing mesh vertex.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>works only for <a class="el" href="structPxMeshMidPhase.html#a49f740883fbfb1a49631c28818c219f4aa791bfd986fc6edb77db2928e3c5e529" title="Default midphase mesh structure, as used up to PhysX 3.3. ">PxMeshMidPhase::eBVH33</a> </dd>
<dd>
Size of array returned is equal to the number returned by <a class="el" href="classPxTriangleMesh.html#ab2ee402843a2f19a252ecb229d9cfbc8" title="Returns the number of vertices. ">getNbVertices()</a>. </dd>
<dd>
This function operates on cooked vertex indices. </dd>
<dd>
This means the index mapping and vertex count can be different from what was provided as an input to the cooking routine. </dd>
<dd>
To achieve unchanged 1-to-1 index mapping with orignal mesh data (before cooking) please use the following cooking flags: </dd>
<dd>
eWELD_VERTICES = 0, eDISABLE_CLEAN_MESH = 1. </dd>
<dd>
It is also recommended to make sure that a call to validateTriangleMesh returns true if mesh cleaning is disabled. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html#ab2ee402843a2f19a252ecb229d9cfbc8" title="Returns the number of vertices. ">getNbVertices()</a> </dd>
<dd>
<a class="el" href="classPxTriangleMesh.html#acc5c3b6c67a887917a111c432a799eff" title="Refits BVH for mesh vertices. ">refitBVH()</a> </dd></dl>

</div>
</div>
<a id="adb359c49e60c827061a6124d329f7cf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb359c49e60c827061a6124d329f7cf1">&#9670;&nbsp;</a></span>isKindOf()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool PxTriangleMesh::isKindOf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>superClass</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether a given type name matches with the type of this instance. </p>

<p>Reimplemented from <a class="el" href="classPxBase.html#addfc067afca2f67bda6c497b14424962">PxBase</a>.</p>

<p>Reimplemented in <a class="el" href="classPxBVH34TriangleMesh.html#ac451c577118605305231235a5a492e74">PxBVH34TriangleMesh</a>, and <a class="el" href="classPxBVH33TriangleMesh.html#a1fa2f684198b26d57c862436373470a1">PxBVH33TriangleMesh</a>.</p>

<p class="reference">References <a class="el" href="classPxBase.html#addfc067afca2f67bda6c497b14424962">PxBase::isKindOf()</a>.</p>

<p class="reference">Referenced by <a class="el" href="classPxBVH33TriangleMesh.html#a1fa2f684198b26d57c862436373470a1">PxBVH33TriangleMesh::isKindOf()</a>, and <a class="el" href="classPxBVH34TriangleMesh.html#ac451c577118605305231235a5a492e74">PxBVH34TriangleMesh::isKindOf()</a>.</p>

</div>
</div>
<a id="acc5c3b6c67a887917a111c432a799eff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc5c3b6c67a887917a111c432a799eff">&#9670;&nbsp;</a></span>refitBVH()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classPxBounds3.html">PxBounds3</a> PxTriangleMesh::refitBVH </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Refits BVH for mesh vertices. </p>
<p>This function will refit the mesh BVH to correctly enclose the new positions updated by getVerticesForModification. Mesh BVH will not be reoptimized by this function so significantly different new positions will cause significantly reduced performance.</p>
<dl class="section return"><dt>Returns</dt><dd>New bounds for the entire mesh.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>works only for <a class="el" href="structPxMeshMidPhase.html#a49f740883fbfb1a49631c28818c219f4aa791bfd986fc6edb77db2928e3c5e529" title="Default midphase mesh structure, as used up to PhysX 3.3. ">PxMeshMidPhase::eBVH33</a> </dd>
<dd>
PhysX does not keep a mapping from the mesh to mesh shapes that reference it. </dd>
<dd>
Call <a class="el" href="classPxShape.html#ac6112e8c0ee9803eb3436bbaf673d98a" title="Adjust the geometry of the shape. ">PxShape::setGeometry</a> on each shape which references the mesh, to ensure that internal data structures are updated to reflect the new geometry. </dd>
<dd>
<a class="el" href="classPxShape.html#ac6112e8c0ee9803eb3436bbaf673d98a" title="Adjust the geometry of the shape. ">PxShape::setGeometry</a> does not guarantee correct/continuous behavior when objects are resting on top of old or new geometry. </dd>
<dd>
It is also recommended to make sure that a call to validateTriangleMesh returns true if mesh cleaning is disabled. </dd>
<dd>
Active edges information will be lost during refit, the rigid body mesh contact generation might not perform as expected. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxTriangleMesh.html#ab2ee402843a2f19a252ecb229d9cfbc8" title="Returns the number of vertices. ">getNbVertices()</a> </dd>
<dd>
<a class="el" href="classPxTriangleMesh.html#a261ef2fa9709a163408b41d2c34dda71" title="Returns all mesh vertices for modification. ">getVerticesForModification()</a> </dd></dl>

</div>
</div>
<a id="a168cc0000372c63857d128d04f1d32fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a168cc0000372c63857d128d04f1d32fa">&#9670;&nbsp;</a></span>release()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void PxTriangleMesh::release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Decrements the reference count of a triangle mesh and releases it if the new reference count is zero. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxPhysics.html#a29dcbbe128cef11eaf4ce5696c216dfd" title="Creates a triangle mesh object. ">PxPhysics.createTriangleMesh()</a> </dd></dl>

<p>Implements <a class="el" href="classPxBase.html#afe6aedda1df0d6d29b1a28213a5ee25a">PxBase</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxTriangleMesh_8h_source.html">PxTriangleMesh.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classPxTriangleMesh.html">PxTriangleMesh</a></li>
    <li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
  </ul>
</div>
</body>
</html>
